package org.wzy.design.patterns.proxy.cglib;

/**
 * ClassName: TestCGlibProxy <br/>
 * Function: TODO ADD FUNCTION. <br/>
 * Reason: TODO ADD REASON(可选). <br/>
 * date: 2017年6月15日 下午5:44:24 <br/>
 * 
 * @author wzy_h
 * @version
 * @since JDK 1.8
 */
public class TestCGlibProxy {
	public static void main(String[] args) {
		
		// JDK的动态代理是通过接口来进行强制转换的
		// 生成以后的代理对象，是可以强制转换为接口
		
		// CGlib的动态代理是通过生成一个被代理对象的子类，然后重写父类的方法
		// 生成以后的对象，是可以强制转换为被代理对象(也就是用自己写的类)
		// 子类引用赋值给父类
		try {
			Wangbode wbd = (Wangbode) new GPMeipo().getInstance(Wangbode.class);
			wbd.findLover();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
